package com.ecjtu.stadiumre_servations.service.impl;
import com.ecjtu.stadiumre_servations.config.RabbitMQConfig;
import com.ecjtu.stadiumre_servations.service.AlipayService;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;

/**
 * 支付请求消息消费者
 * 处理从支付请求队列接收到的消息，调用支付宝支付接口
 */
@Service
public class PaymentRequestConsumer {
    @Autowired
    private AlipayService alipayService;

    /**
     * 监听支付请求队列，处理支付请求
     * @param alipayParams 支付宝支付参数
     */
    @RabbitListener(queues = RabbitMQConfig.PAYMENT_REQUEST_QUEUE_NAME)
    public void handlePaymentRequest(Map<String, String> alipayParams) {
        try {
            // 调用支付宝支付接口生成支付表单
            String alipayForm = alipayService.toAlipay(alipayParams);
            // 这里可以将支付表单信息发送到另一个队列，供后续处理或通知前端
        } catch (Exception e) {
            e.printStackTrace();
            // 处理支付失败逻辑，如更新预约状态为待重试等
        }
    }
}